The present invention relates to computer systems and, more specifically, to discovery of virtual images located at endpoints of a storage area network.
A computer network may include multiple physical nodes (i.e., physical devices). In some instances, one or more of the physical nodes may include virtualization capabilities. Accordingly, each physical node may represent one or more virtual devices. For simplicity, virtual and real devices will both be referred to as “images.” For example, a network may include a host computing device coupled to one or more storage devices. The host computing device may be divided into one or more logical partitions (LPARs) and the storage device may be divided into multiple virtual devices.
In order to determine the topology of the network, a network protocol such as the fibre channel protocol may provide commands that allow for topology discovery. Such discovery, however, is currently limited to the discovery of physical nodes (i.e., physical devices). In such a protocol, the commands may be directed to the directory service to determine the number and types of physical nodes registered in the fabric and characteristics about them. The characteristics may include the node's unique name and the protocols supported by the node.
However, because virtualization is provided through mechanisms typically contained within firmware of each physical node, the virtual configuration (e.g. the virtual control units within a storage unit) may not be revealed by these commands. As a result, the logical endpoints of a network behind the physical endpoints are not easily discovered.
In some systems commands exist to determine the current logical connections that exist between LPARS and virtual control units. Specifically, in the FC-SB-4 protocol, the Test Initialization (TIN) FC-SB-4 command may discover the logical control units coupled to a particular LPAR. However, no mechanism exists to discover which of the logical control units has been defined and is addressable (e.g., is available at an “endpoint”). As virtualization of endpoints has become the more widespread, it is advantageous during the discovery process to be able to determine the logical configurations behind the physical nodes, just as it is to discover the physical nodes in the first place.
Currently, for a first logical image (e.g. an LPAR) at one endpoint to determine the existence of another logical image (e.g., a virtual control unit) at another endpoint, the first logical image needs to allocate all possible other logical images at the second endpoint and then determine if each one exists. Such a process, however, is not direct and requires that an inference be made to conclude if a particular logical image exists.
For example, consider a network in which an LPAR is attempting to determine the existence of logical control unit images within a storage device. The LPAR may have to define as many as 256 logical control unit images for the device and as many as 256 devices for each logical control unit. The LPAR then issues commands to each device in order to determine, based on the responses to those commands, whether any device on the logical control unit exists. If a device exists, it can be inferred that the logical control unit exists. With potentially each LPAR needing to determine this information by issuing the same volume of commands, the associated network traffic is multiplied and may lead to network performance degradation.